iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
1
Modern Web

WordPress 遇上 Chatbot,像極了愛情系列 第 29

【第 29 天】在這些 WordPress Hooks 放在 LINE Notify

  • 分享至 

  • xImage
  •  

在昨天,我們建立了一個 private function 來發送 LINE Notify 訊息通知。

【第 26 天】我們會用到哪些 WordPress hooks? ,我們也試著找出我們想要用、可能要用的 WordPress hooks。今天我們來試著為這些 hooks 掛上 LINE Notify 訊息通知。

在這之前,先附上昨天寫好的 private function ,方便大家參考:

private function line_send_notify($text) {
    $request_params = array(
        "headers" => "Authorization: Bearer {$this->options['token']}",
        "body"    => array(
            "message" => "{$text}"
        )
    );

    $response = wp_remote_post('https://notify-api.line.me/api/notify', $request_params);
}

如果我們要在建立文章後發送通知,就這樣寫就可以了:

add_action('save_post', 'line_send_notify');

亦或者,我們可以透過外掛提供的 hooks 去做事情,比如說訂單通知:

add_action('woocommerce_checkout_update_order_meta', 'line_send_notify');

保險起見,我們還要來先檢查一下,是否存在這個外掛:

if(is_plugin_active('woocommerce/woocommerce.php')) 

會變成這樣:

if(is_plugin_active('woocommerce/woocommerce.php')) {
    add_action('woocommerce_checkout_update_order_meta', 'line_send_notify');
}

為了讓提高程式碼的可維護性,我們把這些 add_action() 放在 __construct 中,會變成這樣


public function __construct()
{
    ...
    add_action('save_post', 'line_send_notify');

    if(is_plugin_active('woocommerce/woocommerce.php')) {
        add_action('woocommerce_checkout_update_order_meta', 'line_send_notify');
    }
    ...    
}

這樣應該就會收到通知囉!


上一篇
【第 28 天】在 WordPress 建立傳送 LINE Notify 函式
下一篇
【第 30 天】總結:WordPress 遇上 Chatbot,像極了愛情
系列文
WordPress 遇上 Chatbot,像極了愛情30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言